\appendix
\cleardoublepage
\chapter{Slovník pojmů}
Seznam zkratek a specifických pojmů použitých při tvorbě této práce.
\begin{description}
\item[Framework] je softwarová struktura, která slouží jako podpora při programování, vývoji a organizaci jiných softwarových projektů.
\item[API - Application Programming Interface] dává programátorovi přístup k jednotlivým částem kódu softwaru.
\item[.NET Framework] pracovní prostředí umožňující vývoj a spouštění aplikací na plaftormě Windows.
\item[C\#] představuje vysokoúrovňový objektově orientovaný programovací jazyk vyvinutý firmou Microsoft zároveň s platformou .NET \\
\item[XAML - Extensible Application Markup Language] je deklativní jazyk, vyvíjený firmou Microsoft, založený na XML technologii.
\item[Windows Presentation Foundation - WPF] představuje podmnožinu .NET Framework, která využívá technologie XAML pro tvorbu uživatelských rozhraní.
\item[Windows Workflow Foundation - WWF] představuje enterprise infrastrukturu, která umožňuje modelování vysoce složitých workflow scénářů, nad kterou lze vystavět vlastní aplikaci.
\item[Windows Communication Foundation - WCF] je technologie umožňující tvorbu distribuovaných aplikací na prakticky libovolném komunikačním protokolu.
\item[Windows CardSpace] představuje systém určený k vytváření vztahů mezi weby a online službami. Služba Windows CardSpace může nahradit uživatelská jména a hesla, která se používají k registraci nebo přihlášení k webům nebo online službám.
\item[Silverlight] je platforma určená pro tvorbu dynamického online obsahu a interaktivní práce s ním. Kombinuje text, vektorovou i bitmapovou grafiku, animace a video.
\item[XML - Extensible Markup Language] označuje obecný značkovací jazyk vyvinutý a standardizovaý konsoriem W3C.
\item[DTD - Document Type Definition] je jazyk pro definici struktury XML dokumentu.
\item[DOM - Document Object Model] tvoří objektovou reprezentaci XML nebo HTML dokumentu.
\item[IDL - Interface Definition Language] popisuje standarní jazyk pro definici funkcí a metod distribuovaných aplikací.
\item[XPath - XML Path Language] je dotazovací jazyk pomocí něhož lze adresovat a pracovat s částmi XML dokumentu.
\item[XSLT - Extensible Stylesheet Language Transformations] slouží pro převod dat z XML dokumentu nejčastěji do HTML nebo jiného XML dokumentu.
\item[XQuery] je jazyk primárně určený k tvorbě dotazů nad XML daty.
\item[XPointer] je jazyk určený k vyhledání dat uvnitř XML dokumentu.
\item[URI - Uniform Resource Identifier] tato zkratka symbolizuje řetězec znaků s definovanou strukturou, který slouží k přesné specifikaci zdroje informací.
\item[URL] viz URI. URL primárně specifikuje způsob, jakým se lze ke zdroji dat dostat.
\item[Unicode] je globální standard pro kódování znaků, který umožňuje výměnu dokumentů sázených v mnoha různých jazycích a způsobech psaní
\item[ISO - Internation Organization for Standardization] je mezinárodní organizace zabývající se standardizací.
\item[ECMA] toto jméno představuje mezinárodní asociaci, která se zabývá standardizací v oblasti výpočetních a komunikačních technologií.
\end{description}

\chapter{Podobné projekty}
V této kapitole jsou uvedeny projekty vytvořené převážně pro vlastní účely. Nejsou zde tedy uvedeny korporátní řešení jako např. XPath procesor XALAN od Apache Foundation.

Nejzdařilejším podobným a internetovou komunitou uznávaným projektem je program od  autora Neuman Leghari, který se jmenuje Visual XPath \footnote[1]{Visual XPath - \href{stránky projektu}{http://weblogs.asp.net/nleghari/pages/visualxpath.aspx}}. Tento program zobrazí XML soubor a označí uzly, které byly vybrány v rámci zadaného XPath dotazu. Dále tento program umožňuje generování XPath dotazů výběrem zobrazených XML uzlů.

\begin{figure}[h]
\begin{center}
\includegraphics[width=14cm]{figures/visual-xpath.png}
\caption{Program Visual XPath}
\label{fig:visual-xpath}
\end{center}
\end{figure}

Dalším podobným projektem je projekt zvaný XPath Parser \footnote[2]{ XPath Parser - \href{stránky projektu}{http://xpathparser.codeplex.com/}}. XPath Parser se zabývá kompletním procesingem jazyku XPath, lze o něm tedy hovořit jako o XPath procesoru. Na~domovských stránkách je možné shlédnout zdrojový kód tohoto projektu.


\chapter{Použité nástroje}
K implementaci této práce byly použity vývojové nástroje Microsoft Visual Studio 2008 SP1 a Microsoft Expression Blend 2.

\section{Microsoft Visual Studio 2008 SP1}
Visual Studio tvoří vysoce sofistikované vývojové prostředí společnosti Microsoft. Zároveň je jediným oficiálně uznávaným prostředím pro vývoj aplikací na platformě .NET.  Visual Studio 2008 nabízí vývojářům všechny nástroje a podporu frameworku .NET ve všech jeho verzích.

\section{Microsoft Expression Blend 2}
Uživatelské rozhraní Visualizéru bylo navrženo pomocí aplikace Microsoft Expression Blend 2. Tato aplikace je zaměřena na vývoj uživatelských rozhraní a dalších grafických prvků, které využívají XAML technologii. Microsoft Expression Blend 2 poskytuje řadu funkcí pro~usnadnění vývoje.

\noindent
Mezi přednosti tohoto modelovacího studia patří:
\begin{itemize}
\item integrace s Microsoft Visual Studiem
\item duální zobrazení grafické části a dokumentu XAML
\item četné možnosti práce s grafickými prvky
\item práce s 3D objekty
\item funkce Drag \& Drop \& Customize - jednoduché vkládání grafických prvků do kontextu uživatelského rozhraní a jejich následné úpravy
\end{itemize}

\chapter{Popis aplikace}
Tato sekce popisuje výsledný produkt této bakalářské práce - aplikaci Visualizer. Aplikace Visualizer s skládá z několika souborů:
\begin{description}
\item[Visualizer.exe] je spustitelný soubor. Tvoří základní stavabní kámen této aplikace. Tento soubor načítá grafické rozhraní, konfigurační soubor a pluginy obsažené ve stejné složce v jaké je umístěn.
\item[Plugins.dll] tato dynamické knihovna vytváří komunikační rozhraní pro soubor Visualizer.exe a načtenými pluginy. \textbf{Pro běh aplikace je tento soubor nezbytný.}
\item[XPathPlugin.dll] tento plugin implementuje zadání, kterým se tato balalářská práce zabývá.
\item[Settings.xml] dodatečný soubor, který slouží pro konfiguraci aplikace uživatelem.
\end{description}

\section{Ovládání aplikace}
Pro použití této aplikace je nutné mít nainstalovaný .NET Framework 3.5. Aplikace se spouští souborem Visualizer.exe. Po spuštění je potřeba vybrat plugin, který bude aplikace používat (\emph{Expression Language}). Nasledujícím krokem je vybrání konktrétního souboru, se kterým hodlá uživatel pracovat - \textbf{typ souboru musí být pluginem podporován}.

Výběrem souboru dojde k jeho zobrazení ve střední části okna aplikace. Další práce s~aplikací je již intuitivní - zadáním dotazu a stisknutím tlačítka Evaluate se graficky zvýrazní uzly vybrané XPath dotazem a část nebo celý XPath dotaz.

Aplikace podporuje funkci Breakpoint. Breakpointy lze nastavit kliknutím levého tlačítka myši do prostoru mezi číslo řádku a okraj aplikace. Breakpoint lze nastavit jednodušeji pomocí kliknutí pravým tlačítkem myši na řádek, pro který má být breakpoint zapnut.

Podpora fukncí Next step a Back step je realizována tlačítky Next a Back, umístěných v horní části aplikace. Tato tlačítka slouží pro krokování XPath dotazu.

Konfiguračním souborem lze nastavit zobrazení přídavného menu, které se zobrazí po~zvolení pluginu. V tomto souboru je element \verb|property| s klíčovým označením \verb|debug|. Nastavením hodnoty \verb|value| u tohoto elementu lze toto zobrazení ovlivnit. Připustené hodnoty jsou "true", pro zobrazení menu, a "false", pro nezobrazení menu.
\noindent
Aplikace informuje o svém stavu pomocí stavového řádku umístěného při dolním okraji.

\clearpage
Následuje screenshot aplikace:
\begin{figure}[ht]
\begin{center}
\includegraphics[width=15cm]{figures/app.png}
\caption{Screenshot aplikace Visualizer}
\label{fig:scr}
\end{center}
\end{figure}

\chapter{Struktura souborů na přiloženém CD}
\begin{alltt}
\underline{Aplikace Visualizer}          \textsf{--- Spustitelný program Visualizer}
  Visualizer.exe
  Plugins.dll
  XPathPlugin.dll
  Settings.xml
  alphabet.xml
  books.xml
\underline{Dokumentace}                 \textsf{--- Dokumentace k programu Visualizer}
  \underline{Obrázky}
  Analýza.eap
\underline{Zdrojový kód}                \textsf{--- Zdrojový kód programu Visualizer}
  \underline{Plugins}                   \textsf{--- Část Plugins}
    \underline{Properties}
    \underline{Windows}
    ICore.cs
    IPlugin.cs
  \underline{Visualizer}                \textsf{--- Část Core}
    \underline{Fonts}
    \underline{Properties}
    \underline{Windows}  
    Core.xaml
    Core.xaml.cs
    Settings.xml
  \underline{XPathPlugin}               \textsf{--- Část XPathPlugin}
    \underline{Properties}
    \underline{XPathExpressionUtils}
    \underline{XPathTreeUtils}
    XPathCore.cs
    XPathGraphics.cs
    XPathHighlighter.cs
  \underline{XmlDoc}                    \textsf{--- XML dokumentace zdrojového kódu}
  Visualizer.sln
\underline{text}                        \textsf{--- Text bakalářské práce}
  Bakalářská práce.pdf
\end{alltt}





